iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
自我挑戰組

我與熊貓Pandas相處的日子系列 第 21

Day21- 資料分析(4)樞紐分析

  • 分享至 

  • xImage
  •  

Pandas套件的Pivot Table樞紐分析表可以說是進行資料統計分析時非常好用的工具之一,可以快速解讀欄位資料之間的關係。

pd.pivot_table(data資料, index=列欄位, columns=行欄位, values=分析欄位, margins=布林值, margins_name=字串, aggfunc=統計項目, fill_value=填補空值, dropna=布林值)
  • data : 讀取 DataFrame
  • index : 第一欄的索引
  • columns : 用以分割數據,選定比較的特定欄位。
  • values : 需要計算及比較的數值
  • margins : 是否顯示該欄位的平均。
  • margins_name : 顯示margin 增加的列或欄的名稱。
  • aggfunc : 能夠引入 max、min 、mean、sum等參數
  • fill_value : 用特定值取代 NaN的欄位。
  • dropna : 刪除缺失值。

匯入資料
A、B、C三種類型電影的電影名稱、年份、分數等資料。

from pandas.core.groupby import groupby
import pandas as pd
movie = pd.DataFrame([
    ['A電影', 2020, 54],
    ['B電影', 2020, 90],
    ['C電影', 2020, 58],
    ['A電影', 2021, 53],
    ['B電影', 2021, 66],
    ['C電影', 2021, 82],
    ['A電影', 2022, 85],
    ['B電影', 2022, 75],
    ['C電影', 2022, 56],
], columns=['電影名稱', '年份', '分數'])
print(movie)

執行結果:
  電影名稱    年份  分數
0  A電影  2020  54
1  B電影  2020  90
2  C電影  2020  58
3  A電影  2021  53
4  B電影  2021  66
5  C電影  2021  82
6  A電影  2022  85
7  B電影  2022  75
8  C電影  2022  56

使用values選出想分析的欄位數值

MF = movie.pivot_table(values='分數', index='年份')
print(MF)

執行結果:
             分數
年份             
2020  67.333333
2021  67.000000
2022  72.000000

增加想分析欄位名稱

MF2 = movie.pivot_table(values='分數', index='年份', columns='電影名稱')
print(MF2)

執行結果:
電影名稱  A電影  B電影  C電影
年份                 
2020   54   90   58
2021   53   66   82
2022   85   75   56

margins設定為為True,可計算每列與每欄資料的「平均小計」及「平均總計」

MF3 = movie.pivot_table(values='分數', index='年份', columns='電影名稱', margins=True, margins_name='總平均')
print(MF3)

執行結果:
電影名稱   A電影  B電影    C電影        總平均 
年份                                  
2020      54     90      58.000000  67.333333 
2021      53     66      82.000000  67.000000 
2022      85     75      56.000000  72.000000 
總平均    64     77      65.333333  68.777778

使用aggfunc設定想要的統計項目

MF4 = movie.pivot_table(values='分數', index='年份', columns='電影名稱', aggfunc=['max','min','sum'])
print(MF4)

執行結果:
         max             min              sum        
電影名稱 A電影 B電影 C電影 A電影 B電影 C電影 A電影 B電影 C電影
年份                                      
2020  54  90  58  54  90  58  54  90  58
2021  53  66  82  53  66  82  53  66  82
2022  85  75  56  85  75  56  85  75  56

則資料將以想要的主要欄位名稱,不同的統計項目分別展開列示。 /images/emoticon/emoticon66.gif


上一篇
Day20- 資料分析(3)年度精選
下一篇
Day22- 資料分析(5)電影樞紐
系列文
我與熊貓Pandas相處的日子30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言